home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 November / Chip 11-96.iso / workshop / howto / xf86vdoc / readme.con / README.Config
Text File  |  1994-03-11  |  20KB  |  453 lines

  1.             Configuring XFree86
  2.             A Step-By-Step Guide
  3.             --------------------
  4.  
  5. Contents
  6. --------
  7.     1) Introduction
  8.     2) Procedure Overview
  9.     3) Setting Up the Correct Default Server
  10.     4) The Easy Parts of Xconfig
  11.     5) Configuring the Video Hardware
  12.     6) Configuring the Monitor Modes
  13.     7) Generic Video Modes
  14.  
  15. 1 - Introduction
  16. ----------------
  17.     This document describes how to set up your XFree86 server and
  18. the corresponding Xconfig configuration file.  If you follow the
  19. procedures in this document, you should have no problems getting your
  20. server up and running quickly.
  21.  
  22.     This document is designed to be generic.  Be certain to refer
  23. to the operating system specific README file for your OS (e.g.
  24. README.SVR3) and the card/chipset specific README file for you video
  25. card (e.g. README.trident).  Where these specific files contradict
  26. this generic file, you should follow the specific instructions (there
  27. shouldn't be much of that, though).
  28.  
  29. 2 - Procedure Overview
  30. ----------------------
  31.     There are two steps to getting things up and running.  The
  32. first is to select the appropriate server that you will be using and
  33. set it up as the default server.  The second step is to set up the
  34. Xconfig file.  This file is used to configure the server for your
  35. pointer device (e.g. mouse, trackball), video card, and monitor, as
  36. well as a few other things.
  37.  
  38.     The Xconfig file contains several sections; these procedures 
  39. will lead you through filling out each part.  There is a default/sample 
  40. Xconfig file in /usr/X386/lib/X11/Xconfig.sample; you should copy this 
  41. to /usr/X386/lib/X11/Xconfig, and edit that file to your specific 
  42. configuration.  The Xconfig(4/5) manual page describes the Xconfig file 
  43. contents and options in detail.  Be sure to read through that manual page 
  44. as you fill in your Xconfig file.  The sections of the Xconfig file are:
  45.  
  46.     - Paths and generic server variables.  Sets the default font
  47.       path and a few other server configuration parameters.  Refer
  48.       to the manual page to learn about these.
  49.     - Input devices.  Sets up keyboard and pointer devices, and sets
  50.       a few optional parameters.
  51.     - Graphics setup.  Describes your video hardware to the server.
  52.     - Video Mode setup.  Describes the physical display modes that
  53.       you will be using.
  54.  
  55. 3 - Setting Up The Correct Default Server
  56. -----------------------------------------
  57.     The default server name is /usr/X386/bin/X.  This is a link
  58. to a specific server binary XF86_xxxx, located in /usr/X386/bin/.  You
  59. should check which server the X link is connected to.  If it is not 
  60. correct, remove it and make a new link to the correct binary.  The
  61. server binaries are:
  62.  
  63.     XF86_SVGA:   256-color Super-VGA server.  Contains accelerated
  64.              support for Cirrus 542{0,2,4,6,8} and Western
  65.              Digital 90C31 chipsets, unaccelerated for the rest
  66.              of the supported chipsets.
  67.     XF86_Mono:   (S)VGA monochrome, optionally Hercules or other
  68.              monochrome hardware support is linked in.
  69.     XF86_VGA16:  Generic VGA 16-color server (experimental).
  70.     XF86_S3:     S3 256-color accelerated server.
  71.     XF86_Mach32: ATI Mach32 256-color accelerated server.
  72.     XF86_Mach8:  ATI Mach8 256-color accelerated server.
  73.     XF86_8514:   8514/A 256-color accelerated server.
  74.  
  75. There is a manual page for each of these servers; refer to the manual
  76. page for specific details on supported chipsets and server-specific
  77. configuration options.
  78.  
  79.     Note that it is possible to modify the drivers configured into
  80. a server via the Link Kit; the server binary may not contain all of
  81. the possible drivers, depending on how the distribution was assembled.
  82. You can run '/usr/X386/bin/X -showconfig' to get a printout of the
  83. configured drivers.  If you need to relink your server, refer to the
  84. README file in the Link Kit for specific information.
  85.  
  86. 4 - The Easy Parts of Xconfig
  87. -----------------------------
  88.     The first part of the Xconfig file contains the path to the
  89. RGB database file (which should, in general, never need to be
  90. changed), and the default font path.  You can have multiple FontPath
  91. lines in your Xconfig; they are concatenated.  Ensure that each
  92. directory listed exists and is a valid font directory.  If the server
  93. complains about "Can't open default font 'fixed'", it is because there
  94. is an invalid entry in your font path.  Try running the 'mkfontdir'
  95. command in each directory if you are certain that each one is correct.
  96. The Xconfig(4/5) manual page describes other parameters that may be in
  97. this section of the file.
  98.  
  99.     Next comes the Keyboard configuration section.  This begins
  100. with the keyword "Keyboard" (the SVR3/4 xqueue driver is an exception;
  101. refer to the Xconfig(4/5) man page).  In this section, you can specify
  102. repeat rate, and the default mapping of some of the modifier keys.  In
  103. general, nothing will need to be modified here. Users of non-English
  104. keyboards might want to change the definitions of the modifier keys. See
  105. the Xconfig(4/5) and XFree86kbd(1) man pages for details.
  106.  
  107.     After this comes the pointer-device configuration section.
  108. This begins with the name of the mouse protocol to be used (note
  109. "protocol", not "manufacturer" - the Logitech MouseMan uses the
  110. MouseMan keyword, not the Logitech keyword, recent Logitech serial mice
  111. use MicroSoft).  Some other mouse parameters can be adjusted here.  If you
  112. are using a two-button mouse, uncomment the Emulate3Buttons keyword - in
  113. this mode, pressing both mouse buttons simultaneously causes the server to
  114. report a middle button press.
  115.  
  116.     Note that if the server complains about being unable to open
  117. your mouse device, this is NOT a server problem.  It has been a very
  118. common misconfiguration error on several of the OSs, and 99.999% of the
  119. time it is because the device is not correctly configured in the OS.
  120. Hence don't bug us until after you prove that your OS level support
  121. is correct.
  122.  
  123. 5 - Configuring the Video Hardware
  124. ----------------------------------
  125.     The video hardware section begins with one of the following
  126. keywords: VGA256, VGA2, HGA2, BDM2, VGA16, ACCEL.  VGA256 parameters
  127. are read by the XF86_SVGA server.  VGA2, HGA2, and BDM2 are read by
  128. the appropriate drivers in the XF86_Mono server.  VGA16 parameters are
  129. read by the XF86_VGA16 server.  The ACCEL parameters are read by
  130. XF86_S3, XF86_Mach32, XF86_Mach8, and XF86_8514.  This last may seem
  131. confusing, but a single Xconfig file will never be used for more than
  132. one piece of hardware, and we anticipate merging all of those into a
  133. single server at some point in the future.
  134.  
  135.     Be sure to read the server manual pages and the chipset-specific
  136. README files for any non-generic information that may apply to your
  137. setup.
  138.  
  139.     Once you decide which section you need to fill in, you need to
  140. collect the data for your hardware, and make some configuration
  141. decisions.  The hardware data you need is:
  142.  
  143.     - Chipset
  144.     - Amount of video memory
  145.     - Dot-clocks available
  146.  
  147. The server, in general, is capable of filling these on its own, but it
  148. is best to fully specify things in the Xconfig file, so that no
  149. mistakes are made.  The 'Chipset' is one of the keyword strings for a
  150. configured driver (which can be displayed by running 'X -showconfig').
  151. Of the accelerated servers, only XF86_S3 has chipset drivers
  152. currently.  The amount of memory is specified in KBytes, so 1M of
  153. memory would be specified as 1024.
  154.  
  155.     The dot-clocks are the trickiest part of card configuration.
  156. Fortunately a large database of collected dot-clocks is available.
  157. The first part of the 'modeDB.txt' file lists information for a myriad
  158. of SVGA cards.  For accelerated cards, look in the 'AccelCards'
  159. file.  If you are fortunate, your card is listed in one place or the
  160. other.  If you find your card, copy the numbers from the database to
  161. the Clocks line in your Xconfig file, exactly as they appear in the
  162. database, without sorting, and leaving any duplicates.  Note that some
  163. of the newer accelerated cards use a programmable clock generator, in
  164. which case the Clocks line in your Xconfig file will contain the name
  165. of the programming algorithm in double-quotes 
  166. (e.g. 'Clocks "icd2061a"', which would be used for a #9 GXe board).
  167.  
  168.     If you can't find a listing for your board, you can attempt to
  169. have the server detect them.  Run the command 'X -probeonly >/tmp/out 2>&1'
  170. (for sh or ksh) or 'X -probeonly >&/tmp/out' (for csh). Be sure that the
  171. Xconfig file does NOT contain a Clocks line at this point. Running this
  172. will cause your monitor to freak out for a couple of seconds, as the
  173. server cycles through the clocks rapidly.  It should not damage your
  174. monitor, but some newer monitors may shut themselves off because
  175. things may go out of spec.  Anyhow, when this gets done, look in the
  176. file /tmp/out for the detected dot-clocks.  Copy these to the Clocks
  177. line in your Xconfig file, exactly as they appear in /tmp/out.  Don't
  178. sort them or rearrange them in any way.
  179.  
  180.     It is possible that your board has a programmable clock
  181. generator.  A symptom of this will be a printout of only 2 or 3 clock
  182. values, with the rest all zeros.  If you run into this, and your board
  183. is not listed in the databases, contact the XFree86 team for help, or
  184. post a message to comp.windows.x.i386unix.  Note that most current
  185. Diamond hardware falls into this category, and Diamond will not
  186. release the programming details, so we can't help you.  There are some
  187. ethically questionable solutions available that you can inquire about
  188. on netnews; we do not advocate these methods, so do not contact us
  189. about them.
  190.  
  191.     You may need to specify some Option flags for your hardware
  192. (these used to be called Vendor flags in old XFree86 releases).  The
  193. server manual pages will describe these options, and the chipset-specific
  194. README files will tell you if any are required for your board.
  195.  
  196.     You can specify the size of the virtual screen the server will
  197. use.  The virtual screen allows you to have a "root window" larger
  198. than can be displayed on your monitor (e.g. you can have an 800x600
  199. display, but a 1280x1024 virtual size).  The Virtual keyword is used
  200. to specify this size.  Note that the new accelerated server use
  201. non-displayed memory for caching.  It is not desirable to use all of
  202. your memory for virtual display, as this leaves none for caching, and
  203. this can cost as much as 30-40% of your server performance.
  204.  
  205.     The last thing you specify in this section is the display
  206. modes.  These are the physical display resolutions that the server
  207. will use.  The name is arbitrary, but must match something in the
  208. ModeDB section (described below).  In general, these names are the
  209. display resolution (e.g. "1024x768"), but need not be.  You can list
  210. as many as desired; the first is the default/starting display, and you
  211. can cycle through the list with Ctrl-Alt-Keypad+ or Ctrl-Alt-Keypad-
  212. hotkey sequences.
  213.  
  214. 6 - Configuring the Monitor Modes
  215. ---------------------------------
  216.     Configuring monitor modes can be a trying experience,
  217. unfortunately, because of the lack of standardization in monitor
  218. hardware.  We have attempted to simplify this by collecting databases
  219. of specific monitor information, and assembling a set of "generic"
  220. modes that should get pretty much any monitor up and functional.
  221. For all the gory details of mode generation and tuning, refer to the
  222. 'VideoModes.doc' document by Eric Raymond.
  223.  
  224.     The first step is to check in the 'modeDB.txt' file to see if
  225. there is a listing of modes for your specific monitor.  If there is,
  226. copy those modes to the ModeDB section of your Xconfig file.  Verify
  227. that there is a clock listed on the Clocks line in your Xconfig that
  228. matches the dot-clock in the 2nd parameter of each mode line; delete
  229. any mode line that does not have a matching clock on your card.  If
  230. you still have modes left, you are ready to fire up your server.
  231.  
  232.     If you don't find any specific modes, or need more modes for
  233. the resolutions you want to use, refer to the Generic Video Modes
  234. listing below.  Match the mode specification against your monitor's
  235. specifications; pick the highest-refresh mode that is within specs,
  236. and make sure you have a matching dot-clock on your Clocks line.
  237. Try the VESA modes before any corresponding alternate mode setting.
  238. Copy the mode specification to the ModeDB section of your Xconfig 
  239. file.  Note that these modes are likely not optimal; they may not
  240. be sized perfectly, or may not be correctly centered.  But they
  241. should get you up and running.  If you want to tune the mode to
  242. your monitor, you can read the 'Fixing Problems with the Image'
  243. section of the VideoModes.doc file.
  244.  
  245.     A couple of notes before you are done.  First - if the
  246. same mode name occurs more than once in the ModeDB section of the
  247. Xconfig file, the server will use the mode that comes last in the
  248. file.  It is generally considered a bad idea to have more than one
  249. mode with the same name in your Xconfig file.  The other note is
  250. that there must be one mode in ModeDB for each mode specified in
  251. the Modes line, otherwise the server will object.
  252.  
  253.     That's it.  Now you're ready to test out your new XFree86
  254. installation.
  255.  
  256. 7 - Generic Video Modes
  257. -----------------------
  258. #
  259. #  Mode       Refresh  Hor. Sync  Dot-clock  Interlaced?  VESA?
  260. #  ------------------------------------------------------------
  261. #  640x480     60Hz      31.5k     25.175M       No         No
  262. #  640x480     60Hz      31.5k     25.175M       No         No
  263. #  640x480     63Hz      32.8k     28.322M       No         No
  264. #  640x480     70Hz      36.5k     31.5M         No         No
  265. #  640x480     72Hz      37.9k     31.5M         No        Yes
  266. #  800x600     56Hz      35.1k     36.0M         No        Yes
  267. #  800x600     56Hz      35.4k     36.0M         No         No
  268. #  800x600     60Hz      37.9k     40.0M         No        Yes
  269. #  800x600     60Hz      37.9k     40.0M         No         No
  270. #  800x600     72Hz      48.0k     50.0M         No        Yes
  271. #  1024x768i   43.5Hz    35.5k     44.9M        Yes         No
  272. #  1024x768    60Hz      48.4k     65.0M         No        Yes
  273. #  1024x768    60Hz      48.4k     62.0M         No         No
  274. #  1024x768    70Hz      56.5k     75.0M         No        Yes
  275. #  1024x768    70Hz      56.25k    72.0M         No         No
  276. #  1024x768    76Hz      62.5k     85.0M         No         No
  277. #  1280x1024i  44Hz      51kHz     80.0M        Yes         No
  278. #  1280x1024i  44Hz      47.6k     75.0M        Yes         No
  279. #  1280x1024   59Hz      63.6k    110.0M         No         No
  280. #  1280x1024   61Hz      64.24k   110.0M         No         No
  281. #  1280x1024   74Hz      78.85k   135.0M         No         No
  282.  
  283. #
  284. # 640x480@60Hz Non-Interlaced mode
  285. # Horizontal Sync = 31.5kHz
  286. # Timing: H=(0.95us, 3.81us, 1.59us), V=(0.35ms, 0.064ms, 1.02ms)
  287. #
  288. # name        clock   horizontal timing     vertical timing      flags
  289.  "640x480"     25.175  640  664  760  800    480  491  493  525
  290.  
  291. #
  292. # Alternate 640x480@60Hz Non-Interlaced mode
  293. # Horizontal Sync = 31.5kHz
  294. # Timing: H=(1.27us, 3.81us, 1.27us) V=(0.32ms, 0.06ms, 1.05ms)
  295. #
  296. # name        clock   horizontal timing     vertical timing      flags
  297.  "640x480"     25.175  640  672  768  800    480  490  492  525
  298.  
  299. #
  300. # 640x480@63Hz Non-Interlaced mode (non-standard)
  301. # Horizontal Sync = 32.8kHz
  302. # Timing: H=(1.41us, 1.41us, 5.08us) V=(0.24ms, 0.092ms, 0.92ms)
  303. #
  304. # name        clock   horizontal timing     vertical timing      flags
  305.  "640x480"     28.322  640  680  720  864    480  488  491  521
  306.  
  307. #
  308. # 640x480@70Hz Non-Interlaced mode (non-standard)
  309. # Horizontal Sync = 36.5kHz
  310. # Timing: H=(1.27us, 1.27us, 4.57us) V=(0.22ms, 0.082ms, 0.82ms)
  311. #
  312. # name        clock   horizontal timing     vertical timing      flags
  313.  "640x480"     31.5    640  680  720  864    480  488  491  521
  314.  
  315. #
  316. # VESA 640x480@72Hz Non-Interlaced mode
  317. # Horizontal Sync = 37.9kHz
  318. # Timing: H=(0.76us, 1.27us, 4.06us) V=(0.24ms, 0.079ms, 0.74ms)
  319. #
  320. # name        clock   horizontal timing     vertical timing      flags
  321.  "640x480"     31.5    640  664  704  832    480  489  492  520
  322.  
  323. #
  324. # VESA 800x600@56Hz Non-Interlaced mode
  325. # Horizontal Sync = 35.1kHz
  326. # Timing: H=(0.67us, 2.00us, 3.56us) V=(0.03ms, 0.063ms, 0.70ms)
  327. #
  328. # name        clock   horizontal timing     vertical timing      flags
  329.  "800x600"     36      800  824  896 1024    600  601  603  625
  330.  
  331. #
  332. # Alternate 800x600@56Hz Non-Interlaced mode
  333. # Horizontal Sunc = 35.4kHz
  334. # Timing: H=(0.89us, 4.00us, 1.11us) V=(0.11ms, 0.057ms, 0.79ms)
  335. #
  336. # name        clock   horizontal timing     vertical timing      flags
  337.  "800x600"     36      800  832  976 1016    600  604  606  634
  338.  
  339. #
  340. # VESA 800x600@60Hz Non-Interlaced mode
  341. # Horizontal Sync = 37.9kHz
  342. # Timing: H=(1.00us, 3.20us, 2.20us) V=(0.03ms, 0.106ms, 0.61ms)
  343. #
  344. # name        clock   horizontal timing     vertical timing      flags
  345.  "800x600"     40      800  840  968 1056    600  601  605  628 +hsync +vsync
  346.  
  347. #
  348. # Alternate 800x600@60Hz Non-Interlaced mode
  349. # Horizontal Sync = 37.9kHz
  350. # Timing: H=(1.20us, 3.80us, 1.40us) V=(0.13ms, 0.053ms, 0.69ms)
  351. #
  352. # name        clock   horizontal timing     vertical timing      flags
  353.  "800x600"     40      800 848 1000 1056     600  605  607  633
  354.  
  355. #
  356. # VESA 800x600@72Hz Non-Interlaced mode
  357. # Horizontal Sync = 48kHz
  358. # Timing: H=(1.12us, 2.40us, 1.28us) V=(0.77ms, 0.13ms, 0.48ms)
  359. #
  360. # name        clock   horizontal timing     vertical timing      flags
  361.  "800x600"     50      800  856  976 1040    600  637  643  666  +hsync +vsync
  362.  
  363. #
  364. # 1024x768@43.5Hz, Interlaced mode (8514/A standard)
  365. # Horizontal Sync = 35.5kHz
  366. # Timing: H=(0.54us, 1.34us, 1.25us) V=(0.23ms, 0.23ms, 0.93ms)
  367. #
  368. # name        clock   horizontal timing     vertical timing      flags
  369.  "1024x768i"   44.9   1024 1048 1208 1264    768  776  784  817  Interlace
  370.  
  371. #
  372. # VESA 1024x768@60Hz Non-Interlaced mode
  373. # Horizontal Sync = 48.4kHz
  374. # Timing: H=(0.12us, 2.22us, 2.58us) V=(0.06ms, 0.12ms, 0.60ms)
  375. #
  376. # name        clock   horizontal timing     vertical timing      flags
  377.  "1024x768"    65     1024 1032 1176 1344    768  771  777  806 -hsync -vsync
  378.  
  379. #
  380. # 1024x768@60Hz Non-Interlaced mode (non-standard dot-clock)
  381. # Horizontal Sync = 48.4kHz
  382. # Timing: H=(0.65us, 2.84us, 0.65us) V=(0.12ms, 0.041ms, 0.66ms)
  383. #
  384. # name        clock   horizontal timing     vertical timing      flags
  385.  "1024x768"    62     1024 1064 1240 1280   768  774  776  808
  386.  
  387. #
  388. # VESA 1024x768@70Hz Non-Interlaced mode
  389. # Horizontal Sync=56.5kHz
  390. # Timing: H=(0.32us, 1.81us, 1.92us) V=(0.05ms, 0.14ms, 0.51ms)
  391. #
  392. # name        clock   horizontal timing     vertical timing      flags
  393.  "1024x768"    75     1024 1048 1184 1328    768  771  777  806 -hsync -vsync
  394.  
  395. #
  396. # 1024x768@70Hz Non-Interlaced mode (non-standard dot-clock)
  397. # Horizontal Sync=56.25kHz
  398. # Timing: H=(0.44us, 1.89us, 1.22us) V=(0.036ms, 0.11ms, 0.53ms)
  399. #
  400. # name        clock   horizontal timing     vertical timing      flags
  401.  "1024x768"    72     1024 1056 1192 1280    768  770  776 806   -hsync -vsync
  402.  
  403. #
  404. # 1024x768@76Hz Non-Interlaced mode
  405. # Horizontal Sync=62.5kHz
  406. # Timing: H=(0.09us, 1.41us, 2.45us) V=(0.09ms, 0.048ms, 0.62ms)
  407. #
  408. # name        clock   horizontal timing     vertical timing      flags
  409.  "1024x768"    85     1024 1032 1152 1360    768  784  787  823
  410.  
  411. #
  412. # 1280x1024@44Hz, Interlaced mode
  413. # Horizontal Sync=51kHz
  414. # Timing: H=(0.02us, 2.7us, 0.70us) V=(0.02ms, 0.24ms, 2.51ms)
  415. #
  416. # name        clock   horizontal timing     vertical timing      flags
  417.  "1280x1024i"  80     1280 1296 1512 1568   1024 1025 1037 1165  Interlace
  418.  
  419. #
  420. # Alternate 1280x1024@44Hz, Interlaced mode (non-standard dot-clock)
  421. # Horizontal Sync=47.6kHz
  422. # Timing: H=(0.42us, 2.88us, 0.64us) V=(0.08ms, 0.12ms, 0.96ms)
  423. #
  424. # name        clock   horizontal timing     vertical timing      flags
  425.  "1280x1024i"  75     1280 1312 1528 1576   1024 1028 1034 1080  Interlace
  426.  
  427. #
  428. # 1280x1024@59Hz Non-Interlaced mode (non-standard)
  429. # Horizontal Sync=63.6kHz
  430. # Timing: H=(0.36us, 1.45us, 2.25us) V=(0.08ms, 0.11ms, 0.65ms)
  431. #
  432. # name        clock   horizontal timing     vertical timing      flags
  433.  "1280x1024"  110     1280 1320 1480 1728   1024 1029 1036 1077
  434.  
  435. #
  436. # 1280x1024@61Hz, Non-Interlaced mode
  437. # Horizontal Sync=64.25kHz
  438. # Timing: H=(0.44us, 1.67us, 1.82us) V=(0.02ms, 0.05ms, 0.41ms)
  439. #
  440. # name        clock   horizontal timing     vertical timing      flags
  441.  "1280x1024"  110     1280 1328 1512 1712   1024 1025 1028 1054
  442.  
  443. #
  444. # 1280x1024@74Hz, Non-Interlaced mode
  445. # Horizontal Sync=78.85kHz
  446. # Timing: H=(0.24us, 1.07us, 1.90us) V=(0.04ms, 0.04ms, 0.43ms)
  447. #
  448. # name        clock   horizontal timing     vertical timing      flags
  449.  "1280x1024"  135     1280 1312 1456 1712   1024 1027 1030 1064
  450.  
  451.  
  452. $XFree86: mit/server/ddx/x386/README.Config,v 2.4 1994/03/05 08:22:39 dawes Exp $
  453.